home *** CD-ROM | disk | FTP | other *** search
/ Amiga Magazin: Amiga-CD 1997 May & June / Amiga-CD 1997 #5-6.iso / demos&programme / makecd_2.1 / install < prev    next >
Text File  |  1997-02-07  |  20KB  |  923 lines

  1. ; $Id: Install 1.6 1997/02/07 19:31:38 angela Exp $
  2. ; $VER: Install-MakeCD 2.0 (7.2.97)
  3.  
  4.  
  5.  
  6. (procedure P_GET_LANG_FROM_ENV
  7.     (
  8.         (if (exists "ENV:Language")
  9.             (if (patmatch (getenv "language") txt_lang_0)
  10.                 0
  11.                 (if (patmatch (getenv "language") txt_lang_1)
  12.                     1
  13.                     1
  14.                 )
  15.             )
  16.             (if (patmatch @language txt_lang_0)
  17.                 0
  18.                 (if (patmatch @language txt_lang_1)
  19.                     1
  20.                     1
  21.                 )
  22.             )
  23.         )
  24.     )
  25. )
  26.  
  27.  
  28.  
  29. (procedure P_SELECT_LANGUAGE
  30.     (
  31.         (set txt_lang_0 "Deutsch")    (set txt_langdir_0 "deutsch")
  32.         (set txt_lang_1 "English")    (set txt_langdir_1 "english")
  33.         (set txt_lang_2 "Français")   (set txt_langdir_2 "français")
  34.         (set txt_lang_3 "Italiano")   (set txt_langdir_3 "italiano")
  35.         (set txt_lang_4 "Nederlands") (set txt_langdir_4 "nederlands")
  36.         (set txt_lang_5 "Norsk")      (set txt_langdir_5 "norsk")
  37.         (set txt_lang_6 "Suomi")      (set txt_langdir_6 "suomi")
  38.         (set txt_lang_7 "Svenska")    (set txt_langdir_7 "svenska")
  39.         (set txt_lang_8 "")           (set txt_langdir_8 "")
  40.         (set txt_lang_9 "")           (set txt_langdir_9 "")
  41.  
  42.         (set numlangs 2)
  43.  
  44.         (if (AND (= 0 origuserlevel) (exists "ENV:Language"))
  45.             (
  46.                 (set langnum P_GET_LANG_FROM_ENV)
  47.             )
  48.             (
  49.                 (user 2)
  50.                 (set langnum
  51.                     (askchoice
  52.                         (prompt "Choose the language to be used in this installer script.")
  53.                         (help "Please select your favourite language.\n\n" "Bitte wählen Sie ihre bevorzugte Sprache.")
  54.                         (choices
  55.                             txt_lang_0
  56.                             txt_lang_1
  57.                         )
  58.                         (default
  59.                             P_GET_LANG_FROM_ENV
  60.                         )
  61.                     )
  62.                 )
  63.                 (user origuserlevel)
  64.             )
  65.         )
  66.  
  67.         (if (= langnum 0) (set langstring txt_lang_0))
  68.         (if (= langnum 1) (set langstring txt_lang_1))
  69.         (if (= langnum 2) (set langstring txt_lang_2))
  70.         (if (= langnum 3) (set langstring txt_lang_3))
  71.         (if (= langnum 4) (set langstring txt_lang_4))
  72.         (if (= langnum 5) (set langstring txt_lang_5))
  73.         (if (= langnum 6) (set langstring txt_lang_6))
  74.         (if (= langnum 7) (set langstring txt_lang_7))
  75.         (if (= langnum 8) (set langstring txt_lang_8))
  76.         (if (= langnum 9) (set langstring txt_lang_9))
  77.  
  78.         (if (not (exists "ENV:Language"))
  79.             (
  80.                 (run ("%s%s" "setenv Language " langstring))
  81.             )
  82.         )
  83.  
  84.  
  85.         ; Set default strings
  86.  
  87.         (set #yes_answer
  88.             ("%s"
  89.                 "Yes"
  90.             )
  91.         )
  92.         (set #no_answer
  93.             ("%s"
  94.                 "No"
  95.             )
  96.         )
  97.         (set #choose_yes_or_no
  98.             ("%s"
  99.                 "Please chose \"Yes\" or \"No\"."
  100.             )
  101.         )
  102.         (set #extracting_archive
  103.             ("%s"
  104.                 "Extracting archive \"%s\" to directory \"%s\"."
  105.             )
  106.         )
  107.         (set #install_requires_lha
  108.             ("%s"
  109.                 "Installation of %s requires LhA. Skipping this part."
  110.             )
  111.         )
  112.         (set #warning_old_os
  113.             (
  114.                 "%s%s"
  115.                 "Please update the operating system. "
  116.                 "MakeCD requires OS 2.04."
  117.             )
  118.         )
  119.         (set #intro_msg
  120.             ("%s%s%s"
  121.                 "Welcome at the MakeCD installation!\n\n"
  122.                 "Although MakeCD is able to run without further installation, you might want to "
  123.                 "copy it to your hard disk. This script will help you doing this."
  124.             )
  125.         )
  126.         (set #select_dest_dir
  127.             ("%s%s"
  128.                 "Please select the destination directory for MakeCD. "
  129.                 "The \"MakeCD\" directory will be created automatically."
  130.             )
  131.         )
  132.         (set #which_languages_to_install
  133.             ("%s"
  134.                 "Which languages do you want to install?"
  135.             )
  136.         )
  137.         (set #install_developer
  138.             ("%s%s%s%s%s"
  139.                 "Do you want to install developer material? This material "
  140.                 "describes all you have to know about SUSP (System Use "
  141.                 "Sharing Protocol), RRIP (Rock Ridge Interchange Protocol) "
  142.                 "and about the support of Amiga protection bits and file "
  143.                 "comments on CD-ROM."
  144.             )
  145.         )
  146.         (set #install_goodies
  147.             ("%s%s%s"
  148.                 "Do you want to install some goodies? This material does not "
  149.                 "really belong to MakeCD and is not included in the MakeCD "
  150.                 "registration fee, but might be useful."
  151.             )
  152.         )
  153.         (set #remove_oldversion
  154.             ("%s%s%s%s%s"
  155.                 "The destination directory \"%s\" that you chose already exists. Before installing the "
  156.                 "new version, this directory has to be cleaned up. Files and directories which have been "
  157.                 "created by you, are not affected - except when their names collide with the names of "
  158.                 "MakeCD related files.\n\n"
  159.                 "May the installer script delete the affected files and directories?"
  160.             )
  161.         )
  162.         (set #remove_oldversion_help
  163.             ("%s"
  164.                 "The following commands will be performed:"
  165.             )
  166.         )
  167.         (set #abort_on_cleanup
  168.             ("%s"
  169.                 "Could not cleanup directory.\n\nAborting.\n\nInstallation not done."
  170.             )
  171.         )
  172.         (set #deleting_old_files
  173.             ("%s"
  174.                 "Deleting old files and directories."
  175.             )
  176.         )
  177.         (set #cannot_find_lang_docs
  178.             ("%s%s"
  179.                 "Sorry, cannot find any docs for language \"%s\".\n\n"
  180.                 "Installation of the docs of this language skipped."
  181.             )
  182.         )
  183.         (set #cannot_find_lang_catalogs
  184.             ("%s%s"
  185.                 "Sorry, cannot find any catalogs for language \"%s\".\n\n"
  186.                 "Installation of the catalogs of this language skipped."
  187.             )
  188.         )
  189.         (set #cannot_find_div_docs
  190.             ("%s%s"
  191.                 "Sorry, cannot find some of the doc files.\n\n"
  192.                 "Installation of these docs skipped."
  193.             )
  194.         )
  195.         (set #copying_files
  196.             ("%s"
  197.                 "Please stand by while copying ..."
  198.             )
  199.         )
  200.         (set #cannot_find_development_docs
  201.             ("%s%s"
  202.                 "Sorry, cannot find the development docs.\n\n"
  203.                 "Installation of these docs skipped."
  204.             )
  205.         )
  206.         (set #select_drivers
  207.             ("%s"
  208.                 "Please select the drivers to install."
  209.             )
  210.         )
  211.         (set #copy_libs
  212.             ("%s"
  213.                 "MakeCD requires triton.library V6."
  214.             )
  215.         )
  216.  
  217.  
  218.         ; Hier folgen die Strings, die für die deutsche Übersetzung benötigt
  219.         ; werden. Bei Übersetzungen in andere Sprachen einfach den folgenden
  220.         ; Block komplett kopieren und die Texte ändern. Die Steuerzeichen
  221.         ; sollten unverändert bleiben. Wer irgendwo eine Zeile hinzufügen oder
  222.         ; löschen möchte, muß dir Anzahl der "%s" entsprechend anpassen - für
  223.         ; jede Zeile steht ein "%s".
  224.  
  225.         (if (patmatch langstring "Deutsch")
  226.             (
  227.                 (set #yes_answer
  228.                     "Ja"
  229.                 )
  230.                 (set #no_answer
  231.                     "Nein"
  232.                 )
  233.                 (set #choose_yes_or_no
  234.                     ("%s"
  235.                         "Wählen Sie bitte \"Ja\" oder \"Nein\"."
  236.                     )
  237.                 )
  238.                 (set #extracting_archive
  239.                     ("%s"
  240.                         "Entpacke Archiv \"%s\" ins Verzeichnis \"%s\"."
  241.                     )
  242.                 )
  243.                 (set #install_requires_lha
  244.                     ("%s"
  245.                         "Sie benötigen das Programm LhA, um %s zu installieren. Überspringe diesen Teil."
  246.                     )
  247.                 )
  248.                 (set #warning_old_os
  249.                     (
  250.                         "%s%s"
  251.                         "Bitte bringen Sie Ihr Betriebssystem auf den neuesten Stand. "
  252.                         "MakeCD funktioniert erst ab OS 2.04."
  253.                     )
  254.                 )
  255.                 (set #intro_msg
  256.                     ("%s%s%s"
  257.                         "Willkommen zur MakeCD Installation!\n\n"
  258.                         "MakeCD ist zwar auch ohne weitere Installation lauffähig, aber Sie werden es sicherlich "
  259.                         "auch auf Festplatte installieren wollen. Dabei hilft Ihnen dieses Skript."
  260.                     )
  261.                 )
  262.                 (set #select_dest_dir
  263.                     ("%s%s"
  264.                         "Bitte wählen Sie das Verzeichnis, in dem Sie MakeCD installieren möchten. "
  265.                         "Ein Verzeichnis \"MakeCD\" wird automatisch angelegt."
  266.                     )
  267.                 )
  268.                 (set #which_languages_to_install
  269.                     ("%s"
  270.                         "Welche Sprachen möchten Sie installieren?"
  271.                     )
  272.                 )
  273.                 (set #install_goodies
  274.                     ("%s%s%s"
  275.                         "Sollen einige Goodies installiert werden? Die Goodies gehören "
  276.                         "nicht wirklich zu MakeCD und sind nicht in der Registrier-Gebühr "
  277.                         "von MakeCD enthalten, könnten sich jedoch als nützlich erweisen. "
  278.                     )
  279.                 )
  280.                 (set #install_developer
  281.                     ("%s%s%s%s%s"
  282.                         "Möchten Sie die Dateien für Entwickeler installieren? Diese "
  283.                         "Dateien beschreiben alles, was Sie über SUSP (System Use "
  284.                         "Sharing Protocol), RRIP (Rock Ridge Interchange Protocol) "
  285.                         "und über die Unterstützung von Amiga Protection Bits and Datei-Kommentaren "
  286.                         "auf CD-ROMs wissen müssen."
  287.                     )
  288.                 )
  289.                 (set #remove_oldversion
  290.                     ("%s%s%s%s%s"
  291.                         "Das von Ihnen gewählte Zielverzeichnis \"%s\" existiert bereits. Bevor die neue Version "
  292.                         "installiert wird, muß in diesem Verzeichnis aufgeräumt werden. Dateien und Verzeichnisse, "
  293.                         "die von Ihnen in diesem Verzeichnis angelegt wurden, sind davon nicht betroffen - außer "
  294.                         "wenn Sie Namen vergeben haben, die mit den von MakeCD vergebenen Namen kollidieren.\n\n"
  295.                         "Darf das Installer-Skript die betroffenen Dateien und Verzeichnisse löschen?"
  296.                     )
  297.                 )
  298.                 (set #remove_oldversion_help
  299.                     ("%s"
  300.                         "Die folgenden Befehle werden ausgeführt:"
  301.                     )
  302.                 )
  303.                 (set #abort_on_cleanup
  304.                     ("%s"
  305.                         "Konnte Verzeichnis nicht aufräumen.\n\nBreche Installation ab.\n\nEs wurde nichts installiert."
  306.                     )
  307.                 )
  308.                 (set #deleting_old_files
  309.                     ("%s"
  310.                         "Lösche alte Dateien und Verzeichnisse."
  311.                     )
  312.                 )
  313.                 (set #cannot_find_lang_docs
  314.                     ("%s%s"
  315.                         "Die Anleitung für die Sprache \"%s\" kann leider nicht gefunden werden.\n\n"
  316.                         "Die Installation der Anleitung dieser Sprache wurde übersprungen."
  317.                     )
  318.                 )
  319.                 (set #cannot_find_lang_catalogs
  320.                     ("%s%s"
  321.                         "Der Katalog für die Sprache \"%s\" kann leider nicht gefunden werden.\n\n"
  322.                         "Die Installation des Katalogs dieser Sprache wurde übersprungen."
  323.                     )
  324.                 )
  325.                 (set #cannot_find_div_docs
  326.                     ("%s%s"
  327.                         "Einige der Dokumentations-Dateien können leider nicht gefunden werden.\n\n"
  328.                         "Die Installation dieser Dateien wurde übersprungen."
  329.                     )
  330.                 )
  331.                 (set #copying_files
  332.                     "Kopiere ... Bitte etwas Geduld."
  333.                 )
  334.                 (set #cannot_find_development_docs
  335.                     ("%s%s"
  336.                         "Die Entwickler-Dokumentation kann leider nicht gefunden werden.\n\n"
  337.                         "Die Installation dieser Dokumentation wurde übersprungen."
  338.                     )
  339.                 )
  340.                 (set #select_drivers
  341.                     "Welche Treiber möchten Sie installieren?"
  342.                 )
  343.                 (set #copy_libs
  344.                     "MakeCD benötigt triton.library V6."
  345.                 )
  346.             )
  347.         )
  348.     )
  349. )
  350.  
  351.  
  352.  
  353. (procedure P_SET_GLOBALS
  354.     (
  355.         (set osversion (/ (getversion) 65536))
  356.         (set volname (expandpath (":")))
  357.         (set origuserlevel @user-level)
  358.         (run "which >ENV:MAKECDLHAPATH LhA")
  359.         (set lhapath (getenv "MAKECDLHAPATH"))
  360.         (if (patmatch "\n" (substr lhapath (- (strlen lhapath) 1)))
  361.             ( ; then
  362.                 (set lhapath
  363.                     (substr lhapath 0 (- (strlen lhapath) 1))
  364.                 )
  365.             )
  366.         )
  367.         (run "delete QUIET ENV:MAKECDLHAPATH")
  368.         (set lhexexists (exists "lhex"))
  369.         (if (patmatch "#?LhA" lhapath)
  370.             ( ; then
  371.                 (set lhaexists (exists lhapath))
  372.             )
  373.             ( ; else
  374.                 (set lhaexists 0)
  375.             )
  376.         )
  377.     )
  378. )
  379.  
  380.  
  381.  
  382. (procedure P_EXTRACT_FILE archive path objectname
  383.     (
  384.         (if (= 1 lhexexists)
  385.             ( ; then
  386.                 (working (#extracting_archive archive path))
  387.                 (run ("lhex -afFqw=%s e %s" path archive))
  388.             )
  389.             ( ; else
  390.                 (if (= 1 lhaexists)
  391.                     ( ; then
  392.                         (working (#extracting_archive archive path))
  393.                         (run ("%s -a -m -M x %s %s/" lhapath archive path))
  394.                     )
  395.                     ( ; else
  396.                         (message (#install_requires_lha objectname))
  397.                     )
  398.                 )
  399.             )
  400.         )
  401.     )
  402. )
  403.  
  404.  
  405.  
  406. (procedure P_WARN_OLD_OS
  407.     (
  408.         (if (< osversion 37)
  409.             (
  410.                 (user 2)
  411.                 (message
  412.                     #warning_old_os
  413.                 )
  414.                 (user origuserlevel)
  415.             )
  416.         )
  417.     )
  418. )
  419.  
  420.  
  421.  
  422. (procedure P_SELECT_DEST
  423.     (
  424.         (set destdir
  425.             (tackon
  426.                 (askdir
  427.                     (prompt #select_dest_dir)
  428.                     (help @askdir-help)
  429.                     (default @default-dest)
  430.                 )
  431.                 "MakeCD"
  432.             )
  433.         )
  434.     )
  435. )
  436.  
  437.  
  438.  
  439. (procedure P_SELECT_INSTALL_LANG
  440.     (
  441.         (set i 0)
  442.         (set langbits 0)
  443.         (while (< i numlangs)
  444.             (
  445.                 (set thislangdir (select i txt_langdir_0 txt_langdir_1 txt_langdir_2 txt_langdir_3 txt_langdir_4 txt_langdir_5 txt_langdir_6 txt_langdir_7 txt_langdir_8 txt_langdir_9))
  446.                 (set langbits
  447.                     (if
  448.                         (OR
  449.                             (OR
  450.                                 (= 1 (exists ("doc_%s.lha" thislangdir)))
  451.                                 (= 2 (exists (tackon "Catalogs" thislangdir)))
  452.                             )
  453.                             (= 2 (exists (tackon "doc" thislangdir)))
  454.                         )
  455.                         ( ; then
  456.                             (+ langbits (shiftleft 1 i))
  457.                         )
  458.                         ( ; else
  459.                             (+ langbits 0)
  460.                         )
  461.                     )
  462.                 )
  463.                 (set i (+ i 1))
  464.             )
  465.         )
  466.  
  467.  
  468.         (set langbits
  469.             (askoptions
  470.                 (prompt #which_languages_to_install)
  471.                 (help @askoptions-help)
  472.                 (choices txt_lang_0 txt_lang_1)
  473.                 (default langbits)
  474.             )
  475.         )
  476.     )
  477. )
  478.  
  479.  
  480.  
  481. (procedure P_ASK_INSTALL_GOODIES
  482.     (
  483.         (if
  484.             (OR
  485.                 (= 2 (exists "Extras"))
  486.                 (= 2 (exists "Goodies"))
  487.             )
  488.             (
  489.                 (set installgoodies
  490.                     (askbool
  491.                         (prompt #install_goodies)
  492.                         (choices #yes_answer #no_answer)
  493.                         (help #choose_yes_or_no)
  494.                         (default 1)
  495.                     )
  496.                 )
  497.             )
  498.             ( ;else
  499.                 (set install_goodies 0)
  500.             )
  501.         )
  502.     )
  503. )
  504.  
  505.  
  506.  
  507. (procedure P_ASK_INSTALL_DEVELOPER
  508.     (
  509.         (if
  510.             (OR
  511.                 (= 1 (exists "doc_development.lha"))
  512.                 (= 2 (exists "doc/Development"))
  513.             )
  514.             (
  515.                 (set installdev
  516.                     (askbool
  517.                         (prompt #install_developer)
  518.                         (choices #yes_answer #no_answer)
  519.                         (help #choose_yes_or_no)
  520.                         (default 0)
  521.                     )
  522.                 )
  523.             )
  524.             ( ;else
  525.                 (set installdev 0)
  526.             )
  527.         )
  528.     )
  529. )
  530.  
  531.  
  532.  
  533. (procedure P_COPY_DOCS
  534.     (
  535.  
  536.         (set i 0)
  537.         (while (< i numlangs)
  538.             (
  539.                 (set thislang (select i txt_lang_0 txt_lang_1 txt_lang_2 txt_lang_3 txt_lang_4 txt_lang_5 txt_lang_6 txt_lang_7 txt_lang_8 txt_lang_9))
  540.                 (set thislangdir (select i txt_langdir_0 txt_langdir_1 txt_langdir_2 txt_langdir_3 txt_langdir_4 txt_langdir_5 txt_langdir_6 txt_langdir_7 txt_langdir_8 txt_langdir_9))
  541.                 (if (IN langbits i)
  542.                     (
  543.                         (if (= 2 (exists (tackon "doc" thislangdir)))
  544.                             (
  545.                                 (copyfiles
  546.                                     (source "doc")
  547.                                     (dest (tackon destdir "doc"))
  548.                                     (pattern ("%s#?" thislangdir))
  549.                                     (optional force)
  550.                                 )
  551.                             )
  552.                             (
  553.                                 (if (= 1 (exists ("doc_%s.lha" thislangdir)))
  554.                                     (
  555.                                         (P_EXTRACT_FILE ("doc_%s.lha" thislangdir) (tackon destdir "doc") ("doc/%s" thislangdir))
  556.                                     )
  557.                                     (
  558.                                         (message (#cannot_find_lang_docs thislang))
  559.                                     )
  560.                                 )
  561.                             )
  562.                         )
  563.                         (if (= 2 (exists (tackon "Catalogs" thislangdir)))
  564.                             (
  565.                                 (copyfiles
  566.                                     (source "Catalogs")
  567.                                     (dest (tackon destdir "Catalogs"))
  568.                                     (pattern thislangdir)
  569.                                     (optional force)
  570.                                 )
  571.                                 (copyfiles
  572.                                     (source "Catalogs")
  573.                                     (dest (tackon destdir "Catalogs"))
  574.                                     (pattern ("%s.info" thislangdir))
  575.                                     (optional force)
  576.                                 )
  577.                             )
  578.                             ( ; else
  579.                                 (if (NOT (patmatch "english" thislangdir))    ; nicht English
  580.                                     (
  581.                                         (message (#cannot_find_lang_catalogs thislang))
  582.                                     )
  583.                                 )
  584.                             )
  585.                         )
  586.                     )
  587.                 )
  588.                 (set i (+ i 1))
  589.             )
  590.         )
  591.  
  592.         (
  593.             (if (AND
  594.                     (= 1 (exists "doc/History"))
  595.                     (AND
  596.                         (= 1 (exists "doc/History.info"))
  597.                         (AND
  598.                             (= 1 (exists "doc/Compatibility"))
  599.                             (AND
  600.                                 (= 1 (exists "doc/Compatibility.info"))
  601.                                 (AND
  602.                                     (= 1 (exists "doc/Triton.readme"))
  603.                                     (= 1 (exists "doc/Triton.readme.info"))
  604.                                 )
  605.                             )
  606.                         )
  607.                     )
  608.                 )
  609.                 ( ;then
  610.                     (copyfiles
  611.                         (source "doc")
  612.                         (dest (tackon destdir "doc"))
  613.                         (choices "History" "History.info" "Compatibility" "Compatibility.info" "Triton.readme" "Triton.readme.info")
  614.                         (optional force)
  615.                     )
  616.                 )
  617.                 ( ;else
  618.                     (if (= 1 (exists ("doc_div.lha")))
  619.                         (
  620.                             (P_EXTRACT_FILE "doc_div.lha" (tackon destdir "doc") "doc/#?")
  621.                         )
  622.                         (
  623.                             (message #cannot_find_div_docs)
  624.                         )
  625.                     )
  626.                 )
  627.             )
  628.         )
  629.  
  630.     )
  631. )
  632.  
  633.  
  634.  
  635. (procedure P_CLEANUP_OLD
  636.     (
  637.         (set executestring1 ("delete %s QUIET FORCE" (tackon destdir "(ReadMe|History|MakeCD|Install(%|er)|registerscript|Triton.readme|triton.library)(%|.info)")))
  638.         (set executestring2 ("delete %s QUIET FORCE" (tackon destdir "(Extras|Goodies|doc|deutsch|english|Modules|Development|Catalogs).info")))
  639.         (set executestring3 ("delete %s QUIET FORCE ALL" (tackon destdir "(Extras|Goodies|doc|deutsch|english|Modules|Development|Catalogs)")))
  640.  
  641.         (if
  642.             (askbool
  643.                 (prompt (#remove_oldversion destdir))
  644.                 (choices #yes_answer #no_answer)
  645.                 (help #remove_oldversion_help "\n\n" executestring1 "\n\n" executestring2 "\n\n" executestring3)
  646.                 (default 0)
  647.             )
  648.             ( ; then
  649.                 (working #deleting_old_files)
  650.                 (run executestring1)
  651.                 (run executestring2)
  652.                 (run executestring3)
  653.             )
  654.             ( ; else
  655.                 (abort #abort_on_cleanup)
  656.             )
  657.         )
  658.     )
  659. )
  660.  
  661.  
  662.  
  663. (procedure P_CREATE_DIRS
  664.     (
  665.         (if (NOT (exists destdir))
  666.             ( ; then
  667.                 (makedir
  668.                     destdir
  669.                     (infos)
  670.                 )
  671.             )
  672.             ( ; else
  673.                 (P_CLEANUP_OLD)
  674.             )
  675.         )
  676.  
  677.         (if (NOT (exists (tackon destdir "Modules")))
  678.             (
  679.                 (makedir
  680.                     (tackon
  681.                         destdir
  682.                         "Modules"
  683.                     )
  684.                 )
  685.             )
  686.         )
  687.  
  688.         (if (NOT (exists (tackon destdir "Modules/SCSIDrivers")))
  689.             (
  690.                 (makedir
  691.                     (tackon
  692.                         destdir
  693.                         "Modules/SCSIDrivers"
  694.                     )
  695.                 )
  696.             )
  697.         )
  698.  
  699.         (if (NOT (exists (tackon destdir "Catalogs")))
  700.             (
  701.                 (makedir
  702.                     (tackon
  703.                         destdir
  704.                         "Catalogs"
  705.                     )
  706.                 )
  707.             )
  708.         )
  709.  
  710.         (if (NOT (exists (tackon destdir "doc")))
  711.             (
  712.                 (makedir
  713.                     (tackon
  714.                         destdir
  715.                         "doc"
  716.                     )
  717.                 )
  718.             )
  719.         )
  720.  
  721.         (if (NOT (exists (tackon destdir "Tracks")))
  722.             (
  723.                 (makedir
  724.                     (tackon
  725.                         destdir
  726.                         "Tracks"
  727.                     )
  728.                 )
  729.             )
  730.         )
  731.     )
  732. )
  733.  
  734.  
  735.  
  736. (procedure P_COPY_FILES
  737.     (
  738.         (copyfiles
  739.             (prompt #copying_files)
  740.             (choices "MakeCD" "MakeCD.info" "ReadMe" "ReadMe.info" "doc.info" "Modules.info" "Catalogs.info" "registerscript")
  741.             (help @copyfiles-help)
  742.             (source "")
  743.             (dest destdir)
  744.             (optional force)
  745.         )
  746.  
  747.         (copyfiles
  748.             (prompt #copying_files)
  749.             (help @copyfiles-help)
  750.             (source "Tracks.noinfo")
  751.             (dest destdir)
  752.             (newname "Tracks.info")
  753.             (optional force)
  754.         )
  755.  
  756.         (copyfiles
  757.             (prompt #copying_files)
  758.             (help @copyfiles-help)
  759.             (source "MakeCD.noinfo")
  760.             (dest (pathonly ("%s.info" destdir)))
  761.             (newname (fileonly ("%s.info" destdir)))
  762.             (optional force)
  763.         )
  764.  
  765.         (copyfiles
  766.             (prompt #copying_files)
  767.             (help @copyfiles-help)
  768.             (choices "makecdromfs.module" "SCSISupport.module" "ReadWrite.module" "SCSIDrivers.info")
  769.             (source "Modules")
  770.             (dest (tackon destdir "Modules"))
  771.             (optional force)
  772.         )
  773.  
  774.         (if (= 1 installdev)
  775.             (
  776.                 (if (= 2 (exists "doc/Development"))
  777.                     (
  778.                         (copyfiles
  779.                             (prompt #copying_files)
  780.                             (help @copyfiles-help)
  781.                             (source "doc")
  782.                             (dest (tackon destdir "doc"))
  783.                             (pattern "Development#?")
  784.                             (optional force)
  785.                         )
  786.                     )
  787.                     (
  788.                         (if (= 1 (exists "doc_development.lha"))
  789.                             (
  790.                                 (P_EXTRACT_FILE "doc_development.lha" (tackon destdir "doc") "doc/Development")
  791.                             )
  792.                             (
  793.                                 (message (#cannot_find_development_docs))
  794.                             )
  795.                         )
  796.                     )
  797.                 )
  798.             )
  799.         )
  800.  
  801.         (if (= 1 installgoodies)
  802.             (
  803.                 (if (= 2 (exists "Goodies"))
  804.                     ( ; then
  805.                         (copyfiles
  806.                             (prompt #copying_files)
  807.                             (help @copyfiles-help)
  808.                             (source "Goodies")
  809.                             (dest (tackon destdir "Goodies"))
  810.                             (pattern "Goodies#?")
  811.                             (optional force)
  812.                         )
  813.                     )
  814.                     ( ; else
  815.                         (copyfiles
  816.                             (prompt #copying_files)
  817.                             (help @copyfiles-help)
  818.                             (source "Extras.info")
  819.                             (dest destdir)
  820.                             (newname "Goodies.info")
  821.                             (optional force)
  822.                         )
  823.                         (makedir
  824.                             (tackon destdir "Goodies")
  825.                         )
  826.                         (copyfiles
  827.                             (prompt #copying_files)
  828.                             (help @copyfiles-help)
  829.                             (source "Extras/ReadMe.unpacked")
  830.                             (dest (tackon destdir "Goodies"))
  831.                             (newname "ReadMe")
  832.                             (optional force)
  833.                         )
  834.                         (copyfiles
  835.                             (prompt #copying_files)
  836.                             (help @copyfiles-help)
  837.                             (source "Extras/ReadMe.info")
  838.                             (dest (tackon destdir "Goodies"))
  839.                             (optional force)
  840.                         )
  841.                         (tooltype
  842.                             (dest (tackon destdir ("Goodies/ReadMe")))
  843.                             (noposition)
  844.                         )
  845.                         (foreach "Extras" "#?.lha"
  846.                             (
  847.                                 (P_EXTRACT_FILE ("Extras/%s" @each-name) (tackon destdir "Goodies") ("Goodies/%s" @each-name))
  848.                                 (tooltype
  849.                                     (dest (tackon destdir ("Goodies/%s" (substr @each-name 0 (- (strlen @each-name) 4)))))
  850.                                     (noposition)
  851.                                 )
  852.                             )
  853.                         )
  854.                     )
  855.                 )
  856.             )
  857.         )
  858.     )
  859. )
  860.  
  861.  
  862.  
  863. (procedure P_COPY_DRIVERS
  864.     (
  865.         (copyfiles
  866.             (prompt #select_drivers)
  867.             (help @copyfiles-help)
  868.             (pattern "#?")
  869.             (source "Modules/SCSIDrivers")
  870.             (dest (tackon destdir "Modules/SCSIDrivers"))
  871.             (confirm)
  872.             (optional force)
  873.         )
  874.     )
  875. )
  876.  
  877.  
  878.  
  879. (procedure P_COPY_LIBS
  880.     (
  881.         (copylib 
  882.             (prompt #copy_libs)
  883.             (help #copy_libs)
  884.             (confirm)
  885.             (source "triton.library")
  886.             (dest "LIBS:")
  887.         )
  888.     )
  889. )
  890.  
  891.  
  892. (complete 5)
  893. (P_SET_GLOBALS)
  894. (complete 10)
  895. (P_SELECT_LANGUAGE)
  896. (complete 15)
  897. (P_WARN_OLD_OS)
  898. (complete 20)
  899. (message #intro_msg)
  900. (complete 25)
  901. (P_SELECT_DEST)
  902. (complete 30)
  903. (P_SELECT_INSTALL_LANG)
  904. (complete 35)
  905. (P_ASK_INSTALL_DEVELOPER)
  906. (complete 40)
  907. (P_ASK_INSTALL_GOODIES)
  908. (complete 45)
  909. (P_CREATE_DIRS)
  910. (complete 50)
  911. (P_COPY_DOCS)
  912. (complete 60)
  913. (P_COPY_FILES)
  914. (complete 80)
  915. (P_COPY_DRIVERS)
  916. (complete 90)
  917. (P_COPY_LIBS)
  918. (complete 99)
  919.  
  920. (set @default-dest destdir)
  921.  
  922. (complete 100)
  923.